CSCIĀ 0079. Mobile Device Programming

Units: 3
Formerly known as CSCI 309
Prerequisite: Completion of CSCI 12 with grade of "C" or better
Hours: 72 (54 lecture, 18 laboratory)
Introduction to creating applications for mobile devices including Apple iPhone, iPad, and Google Android. Topics include touch interfaces, GUI elements, sensor input, simple animation and game play, network communication, and database access. (CSU)

CSCI 0079 - Mobile Device Programming

http://catalog.sierracollege.edu/course-outlines/csci-0079/

Catalog Description DESCRIPTION IS HERE: Formerly known as CSCI 309 Prerequisite: Completion of CSCI 12 with grade of "C" or better Hours: 72 (54 lecture, 18 laboratory) Description: Introduction to creating applications for mobile devices including Apple iPhone, iPad, and Google Android. Topics include touch interfaces, GUI elements, sensor input, simple animation and game play, network communication, and database access. (CSU) Units 3 Lecture-Discussion 54 Laboratory 18 By Arrangement Contact Hours 72 Outside of Class Hours Course Student Learning Outcomes Write code to draw a custom view for a mobile device application using lines, rectangles, ellipses, and/or bitmap image files. Implement a mobile device application that contains multiple views controlled by user-interface elements. Identify the tools, steps, and components used to create a mobile device application containing common features such as standard user-interface controls, tables, and custom graphical views. Course Content Outline 1. Introduction and Development Tools a. Developing for iOS and Android b. Installing a Software Development Kit (SDK) and Integrated Development Environment (IDE) c. Sample Application: Displaying Text 2. Basic Interaction with Events a. Using a Graphic Button b. Handling Events c. Moving Objects on Screen 3. Introduction to Programming a. Comments, Function Calls, Variables and Expressions b. Defining Your Own Functions, and Parameters c. If/then/else, and Loops 4. Basic Graphics and Animation a. Drawing Lines, Rectangles, Circles, and Images b. Colors and Alpha Transparency c. Animation and Transitions 5. Image Animation and Sprites a. Images, Resolution, Scaling, and Masking b. Multi-Frame Images and Sprite Sheets 6. User Input with Text Fields a. Adding a Text Field and Different Input Types b. Input Events, the on-Screen Keyboard, and Input Focus 7. Device Orientation and Settings a. Detecting Orientation Changes b. The effect of Orientation Changes on Graphics and UI elements c. Build Settings and Device Information 8. Sound a. Sound File Formats b. Loading and Playing Sounds c. Timing and Mixing 9. Game Physics a. Implementing Motion, Gravity, and Collisions using Math b. Implementing 2D Physics using a Physics Library 10. Tables and other User-Interface Elements a. Displaying a Table of Data b. Other User Interface Widgets c. Platform Specific Concerns 11. File Storage for Persistent Data a. File I/O and the Device File System b. Using JSON for Structured Data c. Using SQLite for Databases 12. Networking and Web Services a. Using External Data via HTTP b. Integrating with Social Networking Sites 13. Using Device Sensors a. Accelerometer and Gyro b. GPS and Maps c. Camera Course Objectives Course Objectives Lecture Objectives: 1. List different sensor types found on modern mobile devices (e.g. GPS, accelerometer, gyro). 2. Identify standard techniques to display and manipulate data on a mobile device. 3. Design a GUI for a simple application using buttons and text fields. 4. Compare and evaluate different methods of storing persistent data (text files, JSON, SQLite, etc.). 5. Evaluate and choose from different strategies to implement animation. Laboratory Objectives: 1. Use development tools to build a sample application and install it on a mobile device for testing. 2. Interpret the function of code samples in a text programming language (such as Lua, Javascript, C#, etc.). 3. Use vector graphics to display text, rectangles, and circles on the screen. 4. Use standard User-Interface controls to display and edit data. 5. Test a mobile application to discover flaws and solve them. 6. Experiment with and analyze the effect of device orientation on mobile applications. 7. Develop a simple game or utility application with at least two different screen views. 8. Design a simulation or animation using physics (gravity, collisions, etc.). Methods of Evaluation Objective Examinations Problem Solving Examinations Projects Reading Assignments 1. Read the chapter on Data Persistence. Analyze the different data saving strategies and choose one to study in detail. Develop a strategy for saving and restoring key values and be prepared to discuss in class. 2. Read the chapter on Table Views. Learn how to display a table of names and how to bring up a new view when a name in the table is tapped and be prepared to discuss in class. Writing, Problem Solving or Performance 1. Using the IDE, create a small app to display the text "Hello World" on its screen. Give the application an icon to make it look more like a real app. Upload a zip file of your source code to the instructor. 2. Using the IDE, write a slightly more complex application, one with two buttons as well as a label. When the user taps either of the buttons, the label's text changes to indicate which button was pressed. Upload a zip file of the source code to the instructor. Other (Term projects, research papers, portfolios, etc.) Methods of Instruction Laboratory Lecture/Discussion Distance Learning Other materials and-or supplies required of students that contribute to the cost of the course.